定义int a[2][3],*p[3];那么语句p=a和p[0]=a都错在哪?
来源:百度知道 编辑:UC知道 时间:2024/05/11 01:55:02
单独的p和a分别表示什么?
*p[3] 是定义指针数组,由3个指向整型数组的指针元索。
a[2][3]是定义了一个二维数组。
p=a 类型不同,读出的数据会和你的期望值不同。
p[0]=a 也一样的错误
正确的应是 p[0]=&a[0][0]; p[1]=&a[1][0];
补充:p[0]=a[0], p[1]=a[1] 也可以。
因为a 是二维数组的首地址,a[0],a[1]可以看成是一维数组名,有四个元索。
int *p[3];
p是一个元素为指针的数组
p是数组名,不能被改变或赋值,所以 p=a是非法的。
p[0]是int*, a 是int[][], 不能转换。
p[3]是*p[3]的地址,p是指向p[0]这一行的首地址。而a是a[2][3]第0行第0列元素的地址,也就是&a[0][0],
定义int a[2][3]之后
若定义int a[ ][3]={1,2,3,4,5,6,7};第一维大小
定义int a[ ]={1,2,3,4,5,6},*p=a;表达式(*++p)++的值是________。
unsigned int a=2;int b = -3;
若有定义:int a[4][10];
int a[][3]=2{2*3};是正确定义二维数组,我要专回答家?
定义int a[2][3],*p[3];那么语句p=a和p[0]=a都错在哪?
为什么不能定义成int a=b=c=2;而要定义成int a=2,b=2,c=2;
c语言的 int a(int , int); 这是什么定义阿??
int *a=0,*b=0; 定义语句对吗